package com.canaan.business.service.inOutStock;

import java.util.List;
import com.canaan.business.domain.inOutStock.YardageGoodsRecord;
import com.canaan.business.domain.vo.YardageGoodsBarcodeVo;
import com.canaan.business.domain.vo.YardageGoodsLocationVo;

/**
 * 码货记录Service接口
 *
 * @author ruoyi
 * @date 2023-02-09
 */
public interface IYardageGoodsRecordService {
    /**
     * 查询码货记录
     *
     * @param id 码货记录主键
     * @return 码货记录
     */
    YardageGoodsRecord selectYardageGoodsRecordById(Long id);

    /**
     * 查询码货记录列表
     *
     * @param yardageGoodsRecord 码货记录
     * @return 码货记录集合
     */
    List<YardageGoodsRecord> selectYardageGoodsRecordList(YardageGoodsRecord yardageGoodsRecord);

    /**
     * 新增码货记录
     *
     * @param yardageGoodsRecord 码货记录
     * @return 结果
     */
    int insertYardageGoodsRecord(YardageGoodsRecord yardageGoodsRecord);

    /**
     * 批量新增码货记录
     *
     * @param yardageGoodsRecordList 码货记录列表
     * @return 结果
     */
    int batchInsertYardageGoodsRecord(List<YardageGoodsRecord> yardageGoodsRecordList);


    /**
     * 修改码货记录
     *
     * @param yardageGoodsRecord 码货记录
     * @return 结果
     */
    int updateYardageGoodsRecord(YardageGoodsRecord yardageGoodsRecord);

    /**
     * 批量修改码货记录
     *
     * @param yardageGoodsRecordList 码货记录列表
     * @return 结果
     */
    int batchUpdateYardageGoodsRecord(List<YardageGoodsRecord> yardageGoodsRecordList);

    /**
     * 批量删除码货记录
     *
     * @param ids 需要删除的码货记录主键集合
     * @return 结果
     */
    int deleteYardageGoodsRecordByIds(Long[] ids);

    /**
     * 删除码货记录信息
     *
     * @param id 码货记录主键
     * @return 结果
     */
    int deleteYardageGoodsRecordById(Long id);

    /**
     * 查询码货记录
     *
     * @param no 编号
     * @return 码货记录
     */
    YardageGoodsRecord selectYardageGoodsRecordByNo(String no);

    /**
     * 批量删除码货记录
     *
     * @param nos 需要删除的编号集合
     * @return 结果
     */
    int deleteYardageGoodsRecordByNos(String[] nos);

    /**
     * 删除码货记录信息
     *
     * @param no 编号
     * @return 结果
     */
    int deleteYardageGoodsRecordByNo(String no);

    /**
     * 根据入库单明细ID查询码货条码
     * @param inOrderId
     * @return
     */
     List<YardageGoodsBarcodeVo> selectBarcodeByInOrderId(Long inOrderId);

    /**
     * 根据入库单明细ID查询库位信息
     * @param inOrderId
     * @return
     */
     List<YardageGoodsLocationVo> selectLocationByInOrderId(Long inOrderId);


}
